﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using HanGu.Services.Interface;
using HanGu.Entity;
using Hangu.WebClient;
using System.Text.RegularExpressions;
using System.Web.Mvc;

namespace Hangu.WebClient
{
    public static class MyHtmlHelper
    {
        static readonly IMemberInfo serviceMember = ServiceFactory.GetService<IMemberInfo>();
        public static MvcHtmlString MemberName(this HtmlHelper htmlHelper, object vipid)
        {
            int id = (int)vipid;
            var member = serviceMember.GetByID(id);
            string vipName = string.Empty;
            if (member != null)
            { vipName = member.RealName + "(" + member.UserName + ")"; }
            return new MvcHtmlString(vipName);
        }

        public static MvcHtmlString FormatHtml(object sourcehtml)
        {
            string html = string.Empty;
            if (sourcehtml != null)
            { html = sourcehtml.ToString(); }
            else
            {
                return new MvcHtmlString(null);
            }
            System.Text.RegularExpressions.Regex regex1 =
                     new System.Text.RegularExpressions.Regex(@"<script[sS]+</script *>",
                     System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex2 =
                  new System.Text.RegularExpressions.Regex(@" href *= *[sS]*script *:",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex3 =
                  new System.Text.RegularExpressions.Regex(@" no[sS]*=",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex4 =
                  new System.Text.RegularExpressions.Regex(@"<iframe[sS]+</iframe *>",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex5 =
                  new System.Text.RegularExpressions.Regex(@"<frameset[sS]+</frameset *>",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex6 =
                  new System.Text.RegularExpressions.Regex(@"<img[^>]+>",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex7 =
                  new System.Text.RegularExpressions.Regex(@"</p>",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex8 =
                  new System.Text.RegularExpressions.Regex(@"<p>",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex9 =
                  new System.Text.RegularExpressions.Regex(@"<[^>]*>",
                  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            html = regex1.Replace(html, ""); //过滤<script></script>标记    
            html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性    
            html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件    
            html = regex4.Replace(html, ""); //过滤iframe    
            html = regex5.Replace(html, ""); //过滤frameset    
            html = regex6.Replace(html, ""); //过滤frameset    
            html = regex7.Replace(html, ""); //过滤frameset    
            html = regex8.Replace(html, ""); //过滤frameset    
            html = regex9.Replace(html, "");
            //html = html.Replace(" ", "");   
            html = html.Replace("</strong>", "");
            html = html.Replace("<strong>", "");
            html = Regex.Replace(html, "[\f\n\r\t\v]", "");  //过滤回车换行制表符   
            return new MvcHtmlString(html);

        }
    }
}